#include "DoubleLinkList.hpp"
#include "LinkQueue.hpp"

template<typename T1,typename T2>
class Pair   //Pair:对组：
{
public:
    T1 a;
    T2 b;
};
class Derived1:public Pair<int,std::string> //全特化
{

};

template<typename T>
class Derived : public Pair<int,T> //偏特化
{};

//全 > 偏 > 模板
int main()
{
    Pair<int,std::string> student = {1,"zhangsan"};
    //类模板必须显示声明
    // DynamicArray<int> a;
    // a.InsertTail(1);
    // a.InsertTail(2);
    // a.InsertTail(3);

    // DynamicArray<DynamicArray<int>> da;
    // da.InsertTail(a);
    // da.InsertTail(a);
    // std::cout<<da;
    // DOubleLinkList<int> list;
    // for(int i = 0; i< 10;i++)
    // {
    //     list.InsertTail(i+1);
    // }
    // list.RemoveByIndex(9);
    // // int a = list.FindByIndex(3);
    // // std::cout<<a<<"\n";
    // std::cout<<list;
    // std::cout<<std::endl;
    // LinkQueue<int> q;
    // for(size_t i = 0;i < 10;i++)
    // {
    //     q.Push(i+1);
    // }
    // while(!q.IsEmpty())
    // {
    //     std::cout<<q.GetFront()<<" ";
    //     q.Pop();
    // }
    // std::cout<<std::endl;
    return 0;
}